软件系统厂商实战:手机代替扫码枪小程序在MES系统中的低延迟集成方案
做MES系统实施这几年,我们团队跑过不下五十个制造车间,从汽车零部件到3C电子,再到医药包装。有一个变化特别明显:以前产线工位上摆满了笨重的工业扫码枪或者专用PDA,现在越来越多的工人兜里就揣着一台普通智能手机,点开微信里的一个小程序,对着物料条码“滴”一下,数据就进系统了。
这事儿看着简单,但作为软件系统厂商,我们刚切入“手机代替扫码枪”这个需求时,其实交了不少学费。很多甲方一开始的诉求只是“降本”,觉得买扫码枪一台两三千,工人人人有手机,做个小程序不就完了?但真正在车间跑起来,才发现最大的拦路虎不是扫码识别率(手机摄像头现在比很多激光枪还猛),而是低延迟的集成体验。
为啥低延迟这么要命?在总装车间,工人扫码是为了做工序过站或者物料齐套校验。如果他扫完码,要愣神等上一两秒屏幕才转圈出结果,一天几千次操作下来,不仅工人骂娘,产线节拍都会被拖慢。传统扫码枪走的是串口或者私有无线协议,直连工位机,延迟极低。手机走公网或者工厂Wi-Fi连中心云端的MES,中间链路太长,稍微网络抖动就卡住。
去年我们在华东一家新能源电池模组厂做项目,就遇到了典型难题。客户想取消三十把工业PDA,全面改用安卓手机小程序。我们第一版方案很常规:小程序调HTTPS接口,把条码扔给MES后台,后台查数据库再返回。压测时一切正常,但一到车间实战,Wi-Fi信号在金属货架后面衰减严重,平均延迟到了900毫秒,高峰期甚至超过2秒。产线班长直接拍桌子:这比老枪慢太多了,工人根本不愿用。
为了解决这个问题,我们项目组在客户现场熬了几个通宵,重构了集成架构,最终跑通了一套“边缘加速 长连接”的低延迟方案,这里给同行分享一下核心思路。
第一,别让手机直接怼中心MES数据库。我们在车间本地部署了一个轻量级边缘网关(其实就是一台工控机配Node.js服务),小程序通过WebSocket长连接与这个边缘网关通信。网关和中心MES之间走内网专线,并且用MQTT协议做异步消息同步。手机扫码后,数据先到边缘网关,网关做本地条码库的内存级校验(我们把常用的物料基础数据预热到了内存里),几乎毫秒级就能给小程序回执“扫码成功,物料匹配”。至于后续的业务单据写入,由网关批量打包可靠传输给MES,实现了业务闭环和体验解耦。
第二,小程序端必须做离线兜底。车间网络不可能100%满格。我们给小程序加了本地缓存队列,利用微信小程序的本地存储能力,万一WebSocket断了,扫码记录先存在手机里,网络恢复瞬间补传。这样工人感知不到断网,只会觉得手机一直好使。
第三,和客户的IT部门死磕网络优化。这虽然是实施老生常谈,但很关键。我们建议他们把车间AP节点密度翻倍,并且把扫码小程序使用的VLAN单独划分,限制其他娱乐流量抢占带宽。
这套组合拳打下来,再次上线时,从手机摄像头捕获条码到小程序界面弹出MES校验结果,端到端延迟稳定控制在100毫秒到150毫秒之间,比原先的工业PDA反应还快。客户方的生产总监后来跟我们说,仅硬件采购这一项就省了小四十万,而且系统迭代特别灵活,要是换PDA,改个界面得找原厂,现在小程序发个版就行。
说实话,手机代替扫码枪绝不是简单做个H5页面。作为MES厂商,真正的功力体现在怎么把消费级设备,通过软件架构的巧劲,变成工业级可靠的一环。如果你也在规划类似改造,记住一句话:先保连接稳定,再做业务集成,延迟优化一定得下沉到边缘去,别指望中心云能救场。
微信号:18581869297